do {
_interrupted = false;
try {
_holdingArea.wait(_timeout);
} catch (InterruptedException ie) {
_interrupted = true;
}
do {
try {
long waitTime = _timeout - (System.currentTimeMillis() - startTime);
if (waitTime > 0)
_holdingArea.wait(waitTime);
} catch (InterruptedException ie) {
keepTrying = true;
}